$(function(){
	var $tabList=$("#tab_list"),$pagebar=$("#pagebar ul"),$pageInfo=$("#page_info"),
		pageNo=1,pageSize=10,count=0;//初始值
	/**---------------封装分页方法,count:总条目数,pageNo:当前页---------------*/
	function pageit(count){
		$pagebar.empty();
		//首页和上一页
		if(pageNo==1){
			$pagebar.append("<li id='start_page' class='disabled'><a href='javascript:void(0);'>首页</a></li>");
			$pagebar.append("<li id='prev_page'  class='disabled'><a href='javascript:void(0);'>上一页</a></li>");
		}else{
			$pagebar.append("<li id='start_page' pn=1><a href='javascript:void(0);'>首页</a></li>");
			$pagebar.append("<li id='prev_page' pn="+(pageNo-1)+"><a href='javascript:void(0);'>上一页</a></li>");
		}
		var tmp=parseInt(count/10);
		var page_size=count%10==0?(tmp):(tmp+1);//总页数
		//中间数字页
		if(page_size<=5){
			//如果小于5页,则全部显示
			for(var i = 0; i <page_size; i++) {
				if(i==pageNo-1){
					$pagebar.append("<li pn="+(i+1)+" class='active'><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
				}else{
					$pagebar.append("<li pn="+(i+1)+"><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
				}
			}
		}else{
			//如果总页数大于5页,显示当前页和前后各两页以及两个...符号
			if(pageNo<3){
				for(var i = 0; i <5; i++) {
					if(i==pageNo-1){
						$pagebar.append("<li pn="+(i+1)+" class='active'><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}else{
						$pagebar.append("<li pn="+(i+1)+"><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}
				}
				$pagebar.append("<li class='disabled'><a href='javascript:void(0);'>...</a></li>");
			}else if(pageNo>page_size-2){
				$pagebar.append("<li class='disabled'><a href='javascript:void(0);'>...</a></li>");
				for(var i = page_size-5; i <page_size; i++) {
					if(i==pageNo-1){
						$pagebar.append("<li pn="+(i+1)+" class='active'><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}else{
						$pagebar.append("<li pn="+(i+1)+"><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}
				}
			}else{
				for (var i = pageNo-3; i <pageNo+2; i++) {
					if(i==pageNo-1){
						$pagebar.append("<li pn="+(pageNo)+" class='active'><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}else{
						$pagebar.append("<li pn="+(i+1)+"><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}
				}
			}
		}
		//下一页和末页
		if(page_size==0||pageNo==page_size){
			$pagebar.append("<li id='next_page' class='disabled'><a href='javascript:void(0);'>下一页</a></li>");
			$pagebar.append("<li id='end_page' class='disabled'><a href='javascript:void(0);'>末页</a></li>");
		}else{
			$pagebar.append("<li id='next_page' pn="+(pageNo+1)+"><a href='javascript:void(0);'>下一页</a></li>");
			$pagebar.append("<li id='end_page' pn="+page_size+"><a href='javascript:void(0);'>末页</a></li>");
		}
		
		//绑定事件
		$pagebar.find("li").not(".disabled").on("click",function(){
			pageNo=parseInt($(this).attr("pn"));//更新当前页码
			reloadList();
		});
		//分页信息条
		$pageInfo.find("span").each(function(i,k){
			if(i==0){
				if(page_size==0){
					$(k).html(0);
				}else{
					$(k).html((pageNo-1)*10+1);
				}
			}else if(i==1){
				$(k).html(count>pageNo*10?pageNo*10:count);
			}else{
				$(k).html(count);
			}
		});
	}
	
	/**------------------加载列表---------------------*/
	var params={"pageNo":1,"pageSize":pageSize,"name":null,"treatDisease":null};
	function reloadList(){
		params.pageNo=pageNo;
		params.pageSize=pageSize;
		params.name=$("#search_name").val();
		params.treatDisease=$("#search_disease").val();
		$.get(serverURL+"department/list",params,function(data){
			try {
				if(data.code==0){
					data=data.data;
					$tabList.find("tbody").empty();
					count=data.pagination.totalCount;
					if(count>0){
						var html="";
						$.each(data.list,function(i,k){
							html+="<tr>" +
							"<td id='pkc'><input type='checkbox' id='"+k.id+"' class='checkbox' col='"+i+"'></td>" +
							"<td>"+((pageNo-1)*10+i+1)+"</td>" +
							"<td>"+k.name+"</td>"+ 
							"<td>"+
								(k.logoUrl?("<a href='"+k.logoUrl+"' target='_blank'><img src='"+k.logoUrl+"'/></a>"):"无")+
							"</td>"+ 
							"<td>"+k.treatDisease+"</td>"+ 
							"</tr>";
						});
						$tabList.find("tbody").append(html);
					}else{
						$tabList.find("tbody").append("<tr><td colspan="+$("thead th").length+">无数据</td></tr>");
					}
					pageit(count);//重绘工具栏
				}else if(data.code!=-1){
					alert("数据加载出错，请稍后重试");
				}
			} catch (e) {
				alert("数据加载出错，请稍后重试"+e);
			}
		});
	}
	reloadList();
	//全选与取消全选
	$("#pkall").change(function(){
		if($(this).prop("checked")){
			$tabList.find("#pkc :checkbox").prop("checked",true);
		}else{
			$tabList.find("#pkc :checkbox").prop("checked",false);
		}
	});
	//获取选中的行
	function getSelectedCols(){
		return $tabList.find("#pkc :checkbox").filter(":checked");
	}
	/**---------------新增-----------------*/
	var $formAdd=$("#form_add"),$addName=$formAdd.find("[name=depName]"),$addTreatDisease=$formAdd.find("[name=depTreatDisease]"),
		$logo=$("#form_add2 input:file"),$logoScan=$("#logo_scan");
	function scanLogo(url){
		$logoScan.parent().parent().parent().show();
		$logoScan.attr("src",url).parent("a").attr("href",url);
	}
	function hideLogo(){
		$logoScan.attr("src","").parent("a").attr("href","");;
		$logoScan.parent().parent().parent().hide();
	}
	//上传文件
	var imgReg=/^.+\.(jpg|png|bmp|gif)$/;
	$logo.change(function(){
		if(!imgReg.test($logo.val())){
    		warnInput($logo);
			return false;
    	}
		$("#form_add2").ajaxSubmit({  
			dataType:'json',
			resetForm:true,
	        success:function(data){
	        	if(data.code==0){
	        		scanLogo(data.data);
	        	}else if(data.code!=-1){
	        		alert("图片上传失败，请重试");
	        		$("#form_add2").get(0).reset();
	        	}
	        } 
		});
	});
	//表单验证
	function checkAddForm(){
		if(!$addName.val()){
			warnInput($addName);
			return false;
		}
		if($addName.val().length>20){
			alert("科室名称不能超过20个字符");
			return false;
		}
		if(!$addTreatDisease.val()){
			warnInput($addTreatDisease);
			return false;
		}
		if($addTreatDisease.val().length>10){
			alert("主治疾病不能超过10个字符");
			return false;
		}
		if(!$logoScan.attr("src")){
			warnInput($logo);
			return false;
		} 
		return true;
	}
	$("#btn_confirm_add").click(function(){
		if(checkAddForm()){
			$.post(serverURL+"department/add",{"name":$addName.val(),"treatDisease":$addTreatDisease.val(),
				"logoUrl":$logoScan.attr("src")},function(data){
				if(data.code==0){
					alert("添加成功");
					hideLogo();
					$("#modal_add").modal("hide");
					$formAdd.get(0).reset();
					reloadList();
				}else if(data.code!=-1){
					alert("添加失败，请稍后重试");
				}
			});
		}
	});	
	/**---------------删除-----------------
	$("#btn_del").click(function(){
		new $.zui.Messager('该功能是否需要还待确定！', {placement: 'top',type:'warning'}).show();
	});
	*/
	/**---------------查询-----------------*/
	$("#btn_search").click(function(){
		params.name=$("#search_name").val();
		params.treatDisease=$("#search_disease").val();
		pageNo=1;
		reloadList();
		return false;
	});
	/**---------------重置-----------------*/
	$("#btn_reset").click(function(){
		$("#form_search").get(0).reset();
		pageNo=1;
		reloadList();
		return false;
	});
	
	/**------------------详情---------------------*/
	var $scanName=$("#scan_name"),$scanDisease=$("#scan_disease");
	$("#btn_scan").click(function(){
		//获取选中的行		
		var $curCol=$tabList.find("#pkc :checkbox").filter(":checked");
    	if($curCol.length!=1){
    		alert("请选择一条记录预览");
    		return;
    	}
    	var id=$curCol[0].id;
    	//从后台获取该条记录所有信息
    	$.get(serverURL+"department/get",{"id":id},function(data){
    		if(data.code==0){
    			data=data.data;
    			$scanName.val(data.name);
    			$scanDisease.val(data.treatDisease);
    		
    			$("#modal_scan").modal("show");
    		}else if(data.code!=-1){
    			alert("科室信息加载失败");
    		}
    	});
    });
    /**-------------修改科室信息-----------------*/
    var $formEdit=$("#form_edit"),$editId=$formEdit.find("[name=id]"),$editName=$formEdit.find("[name=depName]"),$editDisease=$formEdit.find("[name=depTreatDisease]");
    	$logo2=$("#form_edit2 input:file"),$logoScan2=$("#logo_scan2");
	function scanLogo2(url){
		if(url){
			$logoScan2.parent().parent().parent().show();
			$logoScan2.attr("src",url).parent("a").attr("href",url);
		}
	}
	function hideLogo2(){
		$logoScan2.attr("src","").parent("a").attr("href","");;
		$logoScan2.parent().parent().parent().hide();
	}
	//上传文件
	$logo2.change(function(){
		if(!imgReg.test($logo2.val())){
    		warnInput($logo2);
			return false;
    	}
		$("#form_edit2").ajaxSubmit({  
			dataType:'json',
			resetForm:true,
	        success:function(data){
	        	if(data.code==0){
	        		scanLogo2(data.data);
	        	}else if(data.code!=-1){
	        		$("#form_edit2").get(0).reset();
	        		alert("图片上传失败，请重试");
	        	}
	        } 
		});
	});
    function checkEditForm(){
    	if(!$editName.val()){
    		warnInput($editName);
    		return false;
    	}
    	if($editName.val().length>20){
			alert("科室名称不能超过20个字符");
			return false;
		}
    	if(!$editDisease.val()){
    		warnInput($editDisease);
    		return false;  		
    	}
    	if($editDisease.val().length>10){
			alert("主治疾病不能超过10个字符");
			return false;
		}
    	if(!$logoScan2.attr("src")){
			warnInput($logo2);
			return false;
		} 
    	return true;
    }   
    $("#btn_edit").click(function(){
    	//获取选中的行		
		var $curCol=$tabList.find("#pkc :checkbox").filter(":checked");
    	if($curCol.length!=1){
    		alert("请选择一条记录预览");
    		return;
    	}
    	var id=$curCol[0].id;
    	//给隐藏域id赋值
    	$("#edit_id").val(id);
    	$.get(serverURL+"department/get",{"id":id},function(data){
    		if(data.code==0){
    			data=data.data;
    			$editName.val(data.name);
    			$editDisease.val(data.treatDisease);
    			scanLogo2(data.logoUrl);
    		
    			$("#modal_edit").modal("show");
    		}else if(data.code!=-1){
    			alert("科室信息加载失败");
    		}
    	});	
    });
    
    $("#btn_confirm_edit").click(function(){
    	//表单验证
    	if(checkEditForm()){
			$.post(serverURL+"department/modify",{"id":$editId.val(),"name":$editName.val(),"treatDisease":$editDisease.val(),
				"logoUrl":$logoScan2.attr("src")},function(data){
//				data=$.parseJSON(data);
				if(data.code==0){
					alert("修改成功");
					$('#modal_edit').modal('hide');//隐藏模态框
					$formEdit.get(0).reset();
					reloadList();
				}else if(data.code!=-1){
					alert("修改失败，请稍后重试");
				}
			});
		}
    });
});